home *** CD-ROM | disk | FTP | other *** search
- /*
- * Triton - The object oriented GUI creation system for the Amiga
- * Written by Stefan Zeiger in 1993-1994
- *
- * (c) 1993-1994 by Stefan Zeiger
- * You are hereby allowed to use this source or parts of it for
- * creating programs for AmigaOS which use the Triton GUI creation
- * system. All other rights reserved.
- *
- * demo.c - Triton demo program
- *
- */
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////////////// Include our stuff //
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- #include <libraries/triton.h>
- #include <proto/triton.h>
- #include <proto/dos.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////////////// Global variables //
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- struct TR_Project *main_project;
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////// Window 'groups' //
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- ProjectDefinition(groups_trwintags)
- {
- WindowTitle("Groups"), WindowPosition(TRWP_CENTERDISPLAY), WindowUnderscore("~"), WindowID(1),
-
- VertGroupA,
- Space,
- NamedSeparator("TRGR_PROPSHARE (default)"),
- Space,
-
- HorizGroupC,
- Space,
- Button("Short",1),
- Space,
- Button("And much, much longer...",2),
- Space,
- EndGroup,
-
- Space,
- NamedSeparator("TRGR_EQUALSHARE"),
- Space,
-
- HorizGroupEC,
- Space,
- Button("Short",3),
- Space,
- Button("And much, much longer...",4),
- Space,
- EndGroup,
-
- Space,
- NamedSeparator("TRGR_PROPSPACES"),
- Space,
-
- HorizGroupSC,
- Space,
- Button("Short",5),
- Space,
- Button("And much, much longer...",6),
- Space,
- EndGroup,
-
- Space,
- NamedSeparator("TRGR_ARRAY"),
- Space,
-
- LineArray,
- BeginLine,
- Space,
- Button("Short",7),
- Space,
- Button("And much, much longer...",8),
- Space,
- EndLine,
- Space,
- BeginLine,
- Space,
- Button("Not so short",9),
- Space,
- Button("And a bit longer...",10),
- Space,
- EndLine,
- Space,
- BeginLine,
- Space,
- Button("foo bar",12),
- Space,
- Button("42",13),
- Space,
- EndLine,
- EndArray,
-
- Space,
- EndGroup,
- EndProject
- };
-
-
- VOID do_groups(VOID)
- {
- BOOL close_me=FALSE;
- struct TR_Message *trmsg;
- struct TR_Project *groups_project;
-
- if(groups_project=TR_OpenProject(Application,groups_trwintags))
- {
- TR_LockProject(main_project);
- while(!close_me)
- {
- TR_Wait(Application,NULL);
- while(trmsg=TR_GetMsg(Application))
- {
- if(trmsg->trm_Project==groups_project) switch(trmsg->trm_Class)
- {
- case TRMS_CLOSEWINDOW:
- close_me=TRUE;
- break;
-
- case TRMS_ERROR:
- puts(TR_GetErrorString(trmsg->trm_Data));
- break;
- }
- TR_ReplyMsg(trmsg);
- }
- }
- TR_UnlockProject(main_project);
- TR_CloseProject(groups_project);
- }
- }
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////// Window 'menus' //
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- struct TagItem menus_trwintags[]=
- {
- WindowID(2), WindowTitle("Menus"),
-
- TRMN_Title, (ULONG) "A menu",
- TRMN_Item, (ULONG) "A simple item", TRAT_ID, 1,
- TRMN_Item, (ULONG) "Another item", TRAT_ID, 2,
- TRMN_Item, (ULONG) "And now... a barlabel", TRAT_ID, 3,
- TRMN_Item, (ULONG) TRMN_BARLABEL,
- TRMN_Item, (ULONG) "1_An item with a shortcut", TRAT_ID, 4,
- TRMN_Item, (ULONG) "2_Another one", TRAT_ID, 5,
- TRMN_Item, (ULONG) "3_And number 3", TRAT_ID, 6,
- TRMN_Item, (ULONG) TRMN_BARLABEL,
- TRMN_Item, (ULONG) "_F1_And under OS3.0: Extended command keys", TRAT_ID, 6,
- TRMN_Item, (ULONG) "_F2_Another one", TRAT_ID, 7,
- TRMN_Item, (ULONG) TRMN_BARLABEL,
- TRMN_Item, (ULONG) "How do you like submenus?",
- TRMN_Sub, (ULONG) "G_Great!", TRAT_ID, 8,
- TRMN_Sub, (ULONG) "F_Fine", TRAT_ID, 9,
- TRMN_Sub, (ULONG) "D_Don't know", TRAT_ID, 10,
- TRMN_Sub, (ULONG) "N_Not so fine", TRAT_ID, 11,
- TRMN_Sub, (ULONG) "P_Puke!", TRAT_ID, 12,
-
- TRMN_Title, (ULONG) "Another menu",
- TRMN_Item, (ULONG) "This item is ghosted", TRMN_Flags, TRMF_DISABLED, TRAT_ID, 100,
- TRMN_Item, (ULONG) TRMN_BARLABEL,
- TRMN_Item, (ULONG) "Item 1 is checked", TRMN_Flags, TRMF_CHECKED, TRAT_ID, 13,
- TRMN_Item, (ULONG) "Item 2 can be checked, too", TRMN_Flags, TRMF_CHECKIT, TRAT_ID, 14,
-
- TRMN_Title, (ULONG) "Ghosted menu",
- TRMN_Flags, (ULONG) TRMF_DISABLED,
- TRMN_Item, (ULONG) "Item 1", TRAT_ID, 101,
- TRMN_Item, (ULONG) "Item 2", TRAT_ID, 102,
-
- TAG_END
- };
-
-
- VOID do_menus(VOID)
- {
- BOOL close_me=FALSE;
- struct TR_Message *trmsg;
- struct TR_Project *menus_project;
-
- if(menus_project=TR_OpenProject(Application,menus_trwintags))
- {
- TR_LockProject(main_project);
- while(!close_me)
- {
- TR_Wait(Application,NULL);
- while(trmsg=TR_GetMsg(Application))
- {
- if(trmsg->trm_Project==menus_project) switch(trmsg->trm_Class)
- {
- case TRMS_CLOSEWINDOW:
- close_me=TRUE;
- break;
-
- case TRMS_ERROR:
- puts(TR_GetErrorString(trmsg->trm_Data));
- break;
-
- case TRMS_NEWVALUE:
- printf("The new value of object %d is %d.\n",trmsg->trm_ID,trmsg->trm_Data);
- break;
-
- case TRMS_ACTION:
- printf("Object %d has triggered an action.\n",trmsg->trm_ID);
- break;
- }
- TR_ReplyMsg(trmsg);
- }
- }
- TR_UnlockProject(main_project);
- TR_CloseProject(menus_project);
- }
- }
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////////////// Window 'gadgets' //
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- STRPTR cycle_entries[]=
- {
- "Entry 0",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- NULL
- };
-
-
- struct TagItem gadgets_trwintags[]=
- {
- WindowID(3),
- WindowTitle("Gadgets"),
- WindowPosition(TRWP_CENTERDISPLAY),
-
- TRGR_Vert, (ULONG) TRGR_PROPSHARE|TRGR_ALIGN,
-
- TROB_Space, (ULONG) NULL,
-
- TRGR_Horiz, (ULONG) TRGR_EQUALSHARE|TRGR_CENTER,
- TROB_Space, (ULONG) NULL,
- TROB_Line, (ULONG) TROF_HORIZ,
- TROB_Space, (ULONG) NULL,
- TROB_Text, (ULONG) NULL, TRAT_Text, (ULONG) "GadTools", TRAT_Flags, (ULONG) TRTX_3D,
- TROB_Space, (ULONG) NULL,
- TROB_Line, (ULONG) TROF_HORIZ,
- TROB_Space, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
-
- TROB_Space, (ULONG) NULL,
-
- TRGR_Horiz, (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
- TRGR_Horiz, (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
- TROB_Space, (ULONG) NULL,
- TROB_CheckBox, (ULONG) NULL,
- TRAT_ID, (ULONG) 1,
- TRAT_Value, (ULONG) TRUE,
- TRGR_End, (ULONG) NULL,
- TROB_Space, (ULONG) NULL,
- TRGR_Horiz, (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
- TROB_Text, (ULONG) NULL,
- TRAT_Text, (ULONG) "_Checkbox",
- TRAT_ID, (ULONG) 1,
- TROB_Space, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
-
- TROB_Space, (ULONG) NULL,
-
- TRGR_Horiz, (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
- TRGR_Horiz, (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
- TROB_Space, (ULONG) NULL,
- TROB_Slider, (ULONG) NULL,
- TRAT_ID, (ULONG) 4,
- TRSL_Min, (ULONG) 1,
- TRSL_Max, (ULONG) 3,
- TRAT_Value, (ULONG) 1,
- TRGR_End, (ULONG) NULL,
- TROB_Space, (ULONG) NULL,
- TRGR_Horiz, (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
- TROB_Text, (ULONG) NULL,
- TRAT_Text, (ULONG) "_Slider: ",
- TRAT_ID, (ULONG) 4,
- TROB_Text, (ULONG) NULL,
- TRAT_Value, (ULONG) 1,
- TRAT_ID, (ULONG) 4,
- TRAT_MinWidth, (ULONG) 3,
- TROB_Space, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
-
- TROB_Space, (ULONG) NULL,
-
- TRGR_Horiz, (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
- TRGR_Horiz, (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
- TROB_Space, (ULONG) NULL,
- TROB_Scroller, (ULONG) NULL,
- TRAT_ID, (ULONG) 5,
- TRAT_Value, (ULONG) 2,
- TRSC_Total, (ULONG) 7,
- TRSC_Visible, (ULONG) 3,
- TRGR_End, (ULONG) NULL,
- TROB_Space, (ULONG) NULL,
- TRGR_Horiz, (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
- TROB_Text, (ULONG) NULL,
- TRAT_Text, (ULONG) "Sc_roller: ",
- TRAT_ID, (ULONG) 5,
- TROB_Text, (ULONG) NULL,
- TRAT_Value, (ULONG) 2,
- TRAT_ID, (ULONG) 5,
- TRAT_MinWidth, (ULONG) 3,
- TROB_Space, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
-
- TROB_Space, (ULONG) NULL,
-
- TRGR_Horiz, (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
- TRGR_Horiz, (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
- TROB_Space, (ULONG) NULL,
- TROB_Palette, (ULONG) NULL,
- TRAT_ID, (ULONG) 3,
- TRAT_Value, (ULONG) 1,
- TRGR_End, (ULONG) NULL,
- TROB_Space, (ULONG) NULL,
- TRGR_Horiz, (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
- TROB_Text, (ULONG) NULL,
- TRAT_Text, (ULONG) "_Palette: ",
- TRAT_ID, (ULONG) 3,
- TROB_Text, (ULONG) NULL,
- TRAT_Value, (ULONG) 1,
- TRAT_ID, (ULONG) 3,
- TRAT_MinWidth, (ULONG) 3,
- TROB_Space, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
-
- TROB_Space, (ULONG) NULL,
-
- TRGR_Horiz, (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
- TRGR_Horiz, (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
- TROB_Space, (ULONG) NULL,
- TROB_Cycle, (ULONG) cycle_entries,
- TRAT_ID, (ULONG) 6,
- TRAT_Value, (ULONG) 4,
- TRGR_End, (ULONG) NULL,
- TROB_Space, (ULONG) NULL,
- TRGR_Horiz, (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
- TROB_Text, (ULONG) NULL,
- TRAT_Text, (ULONG) "C_ycle: ",
- TRAT_ID, (ULONG) 6,
- TROB_Text, (ULONG) NULL,
- TRAT_Value, (ULONG) 4,
- TRAT_ID, (ULONG) 6,
- TRAT_MinWidth, (ULONG) 3,
- TROB_Space, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
-
- TROB_Space, (ULONG) NULL,
-
- TRGR_Horiz, (ULONG) TRGR_EQUALSHARE|TRGR_ALIGN|TRGR_CENTER,
- TRGR_Horiz, (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
- TROB_Space, (ULONG) NULL,
- TROB_String, (ULONG) "foo bar",
- TRAT_ID, (ULONG) 7,
- TRGR_End, (ULONG) NULL,
- TROB_Space, (ULONG) NULL,
- TRGR_Horiz, (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
- TROB_Text, (ULONG) NULL,
- TRAT_Text, (ULONG) "S_tring",
- TRAT_ID, (ULONG) 7,
- TROB_Space, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
-
- TROB_Space, (ULONG) NULL,
-
- TRGR_Horiz, (ULONG) TRGR_EQUALSHARE|TRGR_CENTER,
- TROB_Space, (ULONG) NULL,
- TROB_Line, (ULONG) TROF_HORIZ,
- TROB_Space, (ULONG) NULL,
- TROB_Text, (ULONG) NULL, TRAT_Text, (ULONG) "BOOPSI", TRAT_Flags, (ULONG) TRTX_3D,
- TROB_Space, (ULONG) NULL,
- TROB_Line, (ULONG) TROF_HORIZ,
- TROB_Space, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
-
- TROB_Space, (ULONG) NULL,
-
- TRGR_Horiz, (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
- TROB_Space, (ULONG) NULL,
- TROB_Button, (ULONG) NULL, TRAT_ID, 2, TRAT_Text, (ULONG) "_Button",
- TROB_Space, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
-
- TROB_Space, (ULONG) NULL,
-
- TRGR_Horiz, (ULONG) TRGR_PROPSPACES|TRGR_ALIGN|TRGR_CENTER,
- TROB_Space, (ULONG) NULL,
- TROB_Text, (ULONG) NULL, TRAT_Text, (ULONG) "_File:", TRAT_ID, 10,
- TROB_Space, (ULONG) NULL,
- TROB_Button, (ULONG) TRBT_GETFILE, TRAT_ID, 10, TRAT_Text, (ULONG) "",
- TROB_Space, (ULONG) NULL,
- TROB_Text, (ULONG) NULL, TRAT_Text, (ULONG) "_Drawer:", TRAT_ID, 11,
- TROB_Space, (ULONG) NULL,
- TROB_Button, (ULONG) TRBT_GETDRAWER, TRAT_ID, 11, TRAT_Text, (ULONG) "",
- TROB_Space, (ULONG) NULL,
- TROB_Text, (ULONG) NULL, TRAT_Text, (ULONG) "_Entry:", TRAT_ID, 12,
- TROB_Space, (ULONG) NULL,
- TROB_Button, (ULONG) TRBT_GETENTRY, TRAT_ID, 12, TRAT_Text, (ULONG) "",
- TROB_Space, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
-
- TROB_Space, (ULONG) NULL,
-
- TRGR_End, (ULONG) NULL,
-
- TAG_END
- };
-
-
- VOID do_gadgets(VOID)
- {
- BOOL close_me=FALSE;
- struct TR_Message *trmsg;
- struct TR_Project *gadgets_project;
-
- if(gadgets_project=TR_OpenProject(Application,gadgets_trwintags))
- {
- TR_LockProject(main_project);
- while(!close_me)
- {
- TR_Wait(Application,NULL);
- while(trmsg=TR_GetMsg(Application))
- {
- if(trmsg->trm_Project==gadgets_project) switch(trmsg->trm_Class)
- {
- case TRMS_CLOSEWINDOW:
- close_me=TRUE;
- break;
-
- case TRMS_ERROR:
- puts(TR_GetErrorString(trmsg->trm_Data));
- break;
- }
- TR_ReplyMsg(trmsg);
- }
- }
- TR_UnlockProject(main_project);
- TR_CloseProject(gadgets_project);
- }
- }
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////// Window 'disabling' //
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- struct TagItem disabling_trwintags[]=
- {
- WindowID(4), WindowTitle("Disabling"), WindowPosition(TRWP_CENTERDISPLAY),
-
- TRGR_Vert, (ULONG) TRGR_PROPSHARE|TRGR_ALIGN,
-
- TROB_Space, (ULONG) NULL,
-
- TRGR_Horiz, (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
- TROB_Space, (ULONG) NULL,
- TROB_CheckBox, (ULONG) NULL, TRAT_ID, 1, TRAT_Value, TRUE,
- TROB_Space, (ULONG) NULL,
- TROB_Text, (ULONG) NULL, TRAT_Text, (ULONG) "_Disable", TRAT_ID, 1,
- TRGR_Horiz, (ULONG) TRGR_PROPSPACES,
- TROB_Space, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
-
- TROB_Space, (ULONG) NULL,
-
- TRGR_Horiz, (ULONG) TRGR_EQUALSHARE|TRGR_CENTER,
- TROB_Space, (ULONG) NULL,
- TROB_Line, (ULONG) TROF_HORIZ,
- TROB_Space, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
-
- TROB_Space, (ULONG) NULL,
-
- TRGR_Horiz, (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
- TROB_Space, (ULONG) NULL,
- TROB_CheckBox, (ULONG) NULL, TRAT_Value, TRUE, TRAT_ID, 2, TRAT_Disabled, TRUE,
- TROB_Space, (ULONG) NULL,
- TROB_Text, (ULONG) NULL, TRAT_Text, (ULONG) "_Checkbox", TRAT_ID, 2,
- TROB_Space, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
-
- TROB_Space, (ULONG) NULL,
-
- TRGR_Horiz, (ULONG) TRGR_PROPSHARE|TRGR_ALIGN|TRGR_CENTER,
- TROB_Space, (ULONG) NULL,
- TROB_Button, (ULONG) NULL, TRAT_Text, (ULONG) "_Button", TRAT_ID, 3, TRAT_Disabled, TRUE,
- TROB_Space, (ULONG) NULL,
- TRGR_End, (ULONG) NULL,
-
- TROB_Space, (ULONG) NULL,
-
- TRGR_End, (ULONG) NULL,
-
- TAG_END
- };
-
-
- VOID do_disabling(VOID)
- {
- BOOL close_me=FALSE;
- struct TR_Message *trmsg;
- struct TR_Project *disabling_project;
-
- if(disabling_project=TR_OpenProject(Application,disabling_trwintags))
- {
- TR_LockProject(main_project);
- while(!close_me)
- {
- TR_Wait(Application,NULL);
- while(trmsg=TR_GetMsg(Application))
- {
- if(trmsg->trm_Project==disabling_project) switch(trmsg->trm_Class)
- {
- case TRMS_CLOSEWINDOW:
- close_me=TRUE;
- break;
-
- case TRMS_ERROR:
- puts(TR_GetErrorString(trmsg->trm_Data));
- break;
-
- case TRMS_NEWVALUE:
- if(trmsg->trm_ID==1)
- {
- TR_SetAttribute(disabling_project,2,TRAT_Disabled,trmsg->trm_Data);
- TR_SetAttribute(disabling_project,3,TRAT_Disabled,trmsg->trm_Data);
- }
- }
- TR_ReplyMsg(trmsg);
- }
- }
- TR_UnlockProject(main_project);
- TR_CloseProject(disabling_project);
- }
- }
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////////////////// Window 'text' //
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- ProjectDefinition(text_trwintags)
- {
- WindowID(5), WindowTitle("Text"), WindowPosition(TRWP_CENTERDISPLAY),
- VertGroupA,
- Space, CenteredText("Normal text"),
- Space, CenteredTextH("Highlighted text"),
- Space, CenteredText3("3-dimensional text"),
- Space, CenteredTextB("Bold text"),
- Space, CenteredText("A _shortcut"),
- Space, CenteredInteger(42),
- Space, EndGroup, EndProject
- };
-
-
- VOID do_text(VOID)
- {
- BOOL close_me=FALSE;
- struct TR_Message *trmsg;
- struct TR_Project *text_project;
-
- if(text_project=TR_OpenProject(Application,text_trwintags))
- {
- TR_LockProject(main_project);
- while(!close_me)
- {
- TR_Wait(Application,NULL);
- while(trmsg=TR_GetMsg(Application))
- {
- if(trmsg->trm_Project==text_project) switch(trmsg->trm_Class)
- {
- case TRMS_CLOSEWINDOW:
- close_me=TRUE;
- break;
-
- case TRMS_ERROR:
- puts(TR_GetErrorString(trmsg->trm_Data));
- break;
- }
- TR_ReplyMsg(trmsg);
- }
- }
- TR_UnlockProject(main_project);
- TR_CloseProject(text_project);
- }
- }
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////////// Window 'connections' //
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- ProjectDefinition(connections_trwintags)
- {
- WindowID(6), WindowTitle("Connections"), WindowPosition(TRWP_CENTERDISPLAY),
- VertGroupA,
- Space,
- NamedSeparatorI("_Checkmarks",1),
- Space,
-
- HorizGroupSAC,
- Space, CheckBox(1),
- Space, CheckBox(1),
- Space, CheckBox(1),
- Space, EndGroup,
-
- Space,
-
- HorizGroupSAC,
- Space, CheckBox(1),
- Space, CheckBox(1),
- Space, CheckBox(1),
- Space, EndGroup,
-
- Space,
- HorizGroupSAC,
- Space, CheckBox(1),
- Space, CheckBox(1),
- Space, CheckBox(1),
- Space, EndGroup,
-
- Space,
- NamedSeparatorI("_Slider and Progress indicator",2),
- Space,
-
- HorizGroupAC,
- Space,
- SliderGadget(0,10,8,2),
- Space,
- Integer3(8),TRAT_ID,2,TRAT_MinWidth,3,
- Space,
- EndGroup,
-
- Space,
-
- HorizGroupAC,
- Space,
- TextN("0%"),
- Space,
- Progress(10,8,2),
- Space,
- TextN("100%"),
- Space,
- EndGroup,
-
- Space,
- EndGroup, EndProject
- };
-
-
- VOID do_connections(VOID)
- {
- BOOL close_me=FALSE;
- struct TR_Message *trmsg;
- struct TR_Project *connections_project;
-
- if(connections_project=TR_OpenProject(Application,connections_trwintags))
- {
- TR_LockProject(main_project);
- while(!close_me)
- {
- TR_Wait(Application,NULL);
- while(trmsg=TR_GetMsg(Application))
- {
- if(trmsg->trm_Project==connections_project) switch(trmsg->trm_Class)
- {
- case TRMS_CLOSEWINDOW:
- close_me=TRUE;
- break;
-
- case TRMS_ERROR:
- puts(TR_GetErrorString(trmsg->trm_Data));
- break;
- }
- TR_ReplyMsg(trmsg);
- }
- }
- TR_UnlockProject(main_project);
- TR_CloseProject(connections_project);
- }
- }
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////////////// Window 'backfill' //
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- ProjectDefinition(backfill_trwintags)
- {
- WindowID(7), WindowTitle("Backfill"), WindowPosition(TRWP_CENTERDISPLAY),
- VertGroupA,
- Space, CenteredText("Each window and"),
- SpaceS, CenteredText("FrameBox can have"),
- SpaceS, CenteredText("one of the following"),
- SpaceS, CenteredText("backfill patterns"),
- Space, HorizGroupA,
- Space, FrameBox, ObjectBackfillS, SpaceB,
- Space, FrameBox, ObjectBackfillSA, SpaceB,
- Space, FrameBox, ObjectBackfillSF, SpaceB,
- Space, EndGroup,
- Space, HorizGroupA,
- Space, FrameBox, ObjectBackfillSB, SpaceB,
- Space, FrameBox, ObjectBackfillA, SpaceB,
- Space, FrameBox, ObjectBackfillAF, SpaceB,
- Space, EndGroup,
- Space, HorizGroupA,
- Space, FrameBox, ObjectBackfillAB, SpaceB,
- Space, FrameBox, ObjectBackfillF, SpaceB,
- Space, FrameBox, ObjectBackfillFB, SpaceB,
- Space, EndGroup,
- Space, EndGroup, EndProject
- };
-
-
- VOID do_backfill(VOID)
- {
- BOOL close_me=FALSE;
- struct TR_Message *trmsg;
- struct TR_Project *backfill_project;
-
- if(backfill_project=TR_OpenProject(Application,backfill_trwintags))
- {
- TR_LockProject(main_project);
- while(!close_me)
- {
- TR_Wait(Application,NULL);
- while(trmsg=TR_GetMsg(Application))
- {
- if(trmsg->trm_Project==backfill_project) switch(trmsg->trm_Class)
- {
- case TRMS_CLOSEWINDOW:
- close_me=TRUE;
- break;
-
- case TRMS_ERROR:
- puts(TR_GetErrorString(trmsg->trm_Data));
- break;
- }
- TR_ReplyMsg(trmsg);
- }
- }
- TR_UnlockProject(main_project);
- TR_CloseProject(backfill_project);
- }
- }
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////// Window 'appwindow' //
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- ProjectDefinition(appwindow_trwintags)
- {
- WindowID(8), WindowTitle("AppWindow"), WindowPosition(TRWP_CENTERDISPLAY), WindowBackfillFB,
- VertGroupA,
- Space, CenteredText("This window is an application window."),
- SpaceS, CenteredText("Drop icons into the window or into"),
- SpaceS, CenteredText("the icon drop boxes below and see"),
- SpaceS, CenteredText("what will happen..."),
- Space, HorizGroupA,
- Space, DropBox(1),
- Space, DropBox(2),
- Space, EndGroup,
- Space, EndGroup, EndProject
- };
-
-
- VOID do_appwindow(VOID)
- {
- BOOL close_me=FALSE;
- struct TR_Message *trmsg;
- struct TR_Project *appwindow_project;
- UBYTE reqstr[200],dirname[100];
-
- if(appwindow_project=TR_OpenProject(Application,appwindow_trwintags))
- {
- TR_LockProject(main_project);
- while(!close_me)
- {
- TR_Wait(Application,NULL);
- while(trmsg=TR_GetMsg(Application))
- {
- if(trmsg->trm_Project==appwindow_project) switch(trmsg->trm_Class)
- {
- case TRMS_CLOSEWINDOW:
- close_me=TRUE;
- break;
-
- case TRMS_ERROR:
- puts(TR_GetErrorString(trmsg->trm_Data));
- break;
-
- case TRMS_ICONDROPPED:
- dirname[0]=0;
- NameFromLock(((struct AppMessage *)(trmsg->trm_Data))->am_ArgList->wa_Lock,dirname,100);
- AddPart(dirname,((struct AppMessage *)(trmsg->trm_Data))->am_ArgList->wa_Name,100);
- switch(trmsg->trm_ID)
- {
- case 1:
- sprintf(reqstr,"Icon(s) dropped into the left box.\tName of first dropped icon:\n%%3%s",dirname);
- break;
- case 2:
- sprintf(reqstr,"Icon(s) dropped into the right box.\tName of first dropped icon:\n%%3%s",dirname);
- break;
- default:
- sprintf(reqstr,"Icon(s) dropped into the window.\tName of first dropped icon:\n%%3%s",dirname);
- }
- TR_EasyRequestTags(Application,reqstr,"_Ok",
- TREZ_LockProject,appwindow_project,TREZ_Title,"AppWindow report",TREZ_Activate,TRUE,TAG_END);
- break;
- }
- TR_ReplyMsg(trmsg);
- }
- }
- TR_UnlockProject(main_project);
- TR_CloseProject(appwindow_project);
- }
- }
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////// Window 'lists' //
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- struct TR_Dimensions lists_dim;
-
- extern struct MinList LVList1;
- extern struct MinList LVList2;
- extern struct MinList LVList3;
-
- struct Node LVNodes1[] =
- {
- { &LVNodes1[1], (struct Node *)&LVList3.mlh_Head, 0, 0, "This is a" },
- { &LVNodes1[2], &LVNodes1[0], 0, 0, "READ" },
- { &LVNodes1[3], &LVNodes1[1], 0, 0, "ONLY" },
- { &LVNodes1[4], &LVNodes1[2], 0, 0, "Listview" },
- { &LVNodes1[5], &LVNodes1[3], 0, 0, "gadget" },
- { &LVNodes1[6], &LVNodes1[4], 0, 0, "using the" },
- { &LVNodes1[7], &LVNodes1[5], 0, 0, "fixed-width" },
- { &LVNodes1[ 8], &LVNodes1[ 6], 0, 0, "font." },
- { &LVNodes1[ 9], &LVNodes1[ 7], 0, 0, "" },
- { &LVNodes1[10], &LVNodes1[ 8], 0, 0, "This window" },
- { &LVNodes1[11], &LVNodes1[ 9], 0, 0, "uses a" },
- { &LVNodes1[12], &LVNodes1[10], 0, 0, "dimensions" },
- { &LVNodes1[13], &LVNodes1[11], 0, 0, "structure," },
- { &LVNodes1[14], &LVNodes1[12], 0, 0, "so it will" },
- { &LVNodes1[15], &LVNodes1[13], 0, 0, "remember" },
- { &LVNodes1[16], &LVNodes1[14], 0, 0, "its" },
- { &LVNodes1[17], &LVNodes1[15], 0, 0, "position" },
- { &LVNodes1[18], &LVNodes1[16], 0, 0, "when you" },
- { (struct Node *)&LVList3.mlh_Tail, &LVNodes1[17],0, 0, "reopen it." }
- };
-
- struct Node LVNodes2[] =
- {
- { &LVNodes2[1], (struct Node *)&LVList3.mlh_Head, 0, 0, "This is a" },
- { &LVNodes2[2], &LVNodes2[0], 0, 0, "SELECT" },
- { &LVNodes2[3], &LVNodes2[1], 0, 0, "Listview" },
- { &LVNodes2[4], &LVNodes2[2], 0, 0, "gadget." },
- { &LVNodes2[5], &LVNodes2[3], 0, 0, "Use the" },
- { &LVNodes2[6], &LVNodes2[4], 0, 0, "numeric" },
- { &LVNodes2[7], &LVNodes2[5], 0, 0, "key pad to" },
- { &LVNodes2[8], &LVNodes2[6], 0, 0, "move" },
- { (struct Node *)&LVList3.mlh_Tail, &LVNodes2[7], 0, 0, "around." }
- };
-
- struct Node LVNodes3[] =
- {
- { &LVNodes3[1], (struct Node *)&LVList3.mlh_Head, 0, 0, "This is a" },
- { &LVNodes3[2], &LVNodes3[0], 0, 0, "SHOW" },
- { &LVNodes3[3], &LVNodes3[1], 0, 0, "SELECTED" },
- { &LVNodes3[4], &LVNodes3[2], 0, 0, "Listview" },
- { &LVNodes3[5], &LVNodes3[3], 0, 0, "gadget." },
- { &LVNodes3[6], &LVNodes3[4], 0, 0, "This list" },
- { &LVNodes3[7], &LVNodes3[5], 0, 0, "is a bit" },
- { &LVNodes3[8], &LVNodes3[6], 0, 0, "longer, so" },
- { &LVNodes3[9], &LVNodes3[7], 0, 0, "that you" },
- { &LVNodes3[10],&LVNodes3[8], 0, 0, "can try the" },
- { &LVNodes3[11],&LVNodes3[9], 0, 0, "other" },
- { &LVNodes3[12],&LVNodes3[10], 0, 0, "keyboard" },
- { (struct Node *)&LVList3.mlh_Tail, &LVNodes3[11],0, 0, "shortcuts." }
- };
-
- struct List LVList1=
- {
- (struct Node *)&LVNodes1[0],
- (struct Node *)NULL,
- (struct Node *)&LVNodes1[18],
- 0,0
- };
-
- struct List LVList2=
- {
- (struct Node *)&LVNodes2[0],
- (struct Node *)NULL,
- (struct Node *)&LVNodes2[8],
- 0,0
- };
-
- struct List LVList3=
- {
- (struct Node *)&LVNodes3[0],
- (struct Node *)NULL,
- (struct Node *)&LVNodes3[12],
- 0,0
- };
-
-
- struct TagItem lists_trwintags[]=
- {
- WindowID(9), WindowTitle("Lists"), WindowPosition(TRWP_CENTERDISPLAY), WindowDimensions(&lists_dim),
- VertGroupEA,
- Space,
-
- NamedSeparatorI("_Read only",1),
- Space,
- HorizGroupA,
- Space,
- FWListROCN(&LVList1,1,0),
- Space,
- EndGroup,
- Space,
-
- NamedSeparatorI("_Select",2),
- Space,
- HorizGroupA,
- Space,
- ListSelC(&LVList2,2,0),
- Space,
- EndGroup,
- Space,
-
- NamedSeparatorI("S_how selected",3),
- Space,
- HorizGroupA,
- Space,
- ListSSN(&LVList3,3,0,1),
- Space,
- EndGroup,
- Space,
-
- EndGroup,
- EndProject
- };
-
-
- VOID do_lists(VOID)
- {
- BOOL close_me=FALSE;
- struct TR_Message *trmsg;
- struct TR_Project *lists_project;
-
- if(lists_project=TR_OpenProject(Application,lists_trwintags))
- {
- TR_LockProject(main_project);
- while(!close_me)
- {
- TR_Wait(Application,NULL);
- while(trmsg=TR_GetMsg(Application))
- {
- if(trmsg->trm_Project==lists_project) switch(trmsg->trm_Class)
- {
- case TRMS_CLOSEWINDOW:
- close_me=TRUE;
- break;
-
- case TRMS_ERROR:
- puts(TR_GetErrorString(trmsg->trm_Data));
- break;
- }
- TR_ReplyMsg(trmsg);
- }
- }
- TR_UnlockProject(main_project);
- TR_CloseProject(lists_project);
- }
- }
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////// Window 'about' //
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- // Note: This could be done even simpler with TR_EasyRequest().
- // ~~~~~ It is done with TR_AutoRequest() to show you how this works.
- // See window 'AppWindow' for a TR_EasyRequest() example.
-
- ProjectDefinition(about_trwintags)
- {
- BeginRequester("About...",TRWP_CENTERDISPLAY),
-
- VertGroupA, Space, CenteredText3("Triton Demo"),
- SpaceS, CenteredText("© 1993-1994 by Stefan Zeiger"),
- Space, HorizSeparator,
- Space, CenteredText("This program is using the"),
- SpaceS, CenteredText("Triton GUI creation system"),
- SpaceS, CenteredText("which is © by Stefan Zeiger"),
- Space, EndGroup,
-
- BeginRequesterGads,
- CenteredButtonRE("_Ok",1),
- EndRequester
- };
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////////////////// Window 'main' //
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- ProjectDefinition(main_trwintags)
- {
- WindowID(10), WindowTitle("Triton Demo"), WindowBackfillFB, WindowPosition(TRWP_CENTERDISPLAY),
- BeginMenu("Project"),
- MenuItem("?_About...",101),
- ItemBarlabel,
- MenuItem("Q_Quit",102),
- VertGroupA,
- Space, CenteredText3("T · r · i · t · o · n"),
- Space, CenteredText3("The object oriented GUI creation system"),
- Space, CenteredText("Demo program"),
- Space, CenteredText("Written and © 1993-1994 by Stefan Zeiger"),
- Space, HorizSeparator,
- Space, HorizGroupEA,
- Space, Button("_Gadgets",1),
- Space, Button("G_roups",2),
- Space, Button("_Text",3),
- Space, EndGroup,
- Space, HorizGroupEA,
- Space, Button("_Connections",4),
- Space, Button("_Backfill",5),
- Space, Button("_Disabling",6),
- Space, EndGroup,
- Space, HorizGroupEA,
- Space, Button("_AppWindow",7),
- Space, Button("_Menus",8),
- Space, Button("_Lists",9),
- Space, EndGroup,
- Space, EndGroup, EndProject
- };
-
-
- VOID do_main(VOID)
- {
- BOOL close_me=FALSE;
- struct TR_Message *trmsg;
-
- if(main_project=TR_OpenProject(Application,main_trwintags))
- {
- while(!close_me)
- {
- TR_Wait(Application,NULL);
- while(trmsg=TR_GetMsg(Application))
- {
- if(trmsg->trm_Project==main_project) switch(trmsg->trm_Class)
- {
- case TRMS_CLOSEWINDOW:
- close_me=TRUE;
- break;
-
- case TRMS_ERROR:
- puts(TR_GetErrorString(trmsg->trm_Data));
- break;
-
- case TRMS_ACTION:
- switch(trmsg->trm_ID)
- {
- case 1:
- do_gadgets();
- break;
- case 2:
- do_groups();
- break;
- case 3:
- do_text();
- break;
- case 4:
- do_connections();
- break;
- case 5:
- do_backfill();
- break;
- case 6:
- do_disabling();
- break;
- case 7:
- do_appwindow();
- break;
- case 8:
- do_menus();
- break;
- case 9:
- do_lists();
- break;
- case 101:
- TR_AutoRequest(Application,main_project,about_trwintags);
- break;
- case 102:
- close_me=TRUE;
- }
- break;
- }
- TR_ReplyMsg(trmsg);
- }
- }
- TR_CloseProject(main_project);
- }
- }
-
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////////////////// Main function //
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- int main(void)
- {
- if(TR_OpenTriton(0,TRCA_Name,"TritonDemo",TRCA_LongName,"Triton demo",TRCA_Version,"1.0",TAG_END))
- {
- do_main();
- TR_CloseTriton();
- return 0;
- }
-
- puts("Can't open triton.library.");
- return 20;
- }
-